Persistent data storage is in high demand. Different organizations, companies, and individuals collect, transmit, and manage all kinds of data that needs to be stored. In order to more efficiently access stored data, some data storage systems may implement a cache in order to more efficiently process access requests. A cache may maintain a copy of different portions of the data stored in a data storage system in persistent storage devices, such as disk storage. When writes to the data stored in the distributed storage system are to be performed, a copy of the data modified by the write may be stored in the cache as well as the disk storage. Caches are typically implemented in system memory that provides quick access times for reading and writing data. Future read requests for the data may be serviced using data stored in the cache, without waiting for the read request to be serviced by the significantly slower persistent storage. Thus, storing more data in the cache may reduce the need to perform more costly storage operations to read data from persistent storage.
In addition to implementing a cache, processing resources for access requests at some data storage systems may be configured, allocated, or otherwise provisioned to ensure a guaranteed level of performance when accessing data at the data storage systems. For example, desired performance of processing operations for accessing a data object (e.g., a database table, folder, file, etc.) may be expressed as a throughput (e.g., a number of Input/Output operations per second (IOPs)). The appropriate resources may be assigned, allocated or reserved for processing access requests to the data object so that the desired performance is achieved. Performance needs, however, change over time. If the allocation of resources remains unchanged then scenarios where processing resources are wasted (e.g., being held in reservation for a data object) or overburdened (e.g., processing resources are unable to keep up with demand to access the data object) can occur. Therefore, timely changes to the allocation of resources for processing access requests can result in more efficient processing of access requests. Because caches relieve some of the processing load of the data storage system, modifications to the allocation of resources may be made based on insights gleaned from the utilization of a cache.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). The words “include,” “including,” and “includes” indicate open-ended relationships and therefore mean including, but not limited to. Similarly, the words “have,” “having,” and “has” also indicate open-ended relationships, and thus mean having, but not limited to. The terms “first,” “second,” “third,” and so forth as used herein are used as labels for nouns that they precede, and do not imply any type of ordering (e.g., spatial, temporal, logical, etc.) unless such an ordering is otherwise explicitly indicated.
Various components may be described as “configured to” perform a task or tasks. In such contexts, “configured to” is a broad recitation generally meaning “having structure that” performs the task or tasks during operation. As such, the component can be configured to perform the task even when the component is not currently performing that task (e.g., a computer system may be configured to perform operations even when the operations are not currently being performed). In some contexts, “configured to” may be a broad recitation of structure generally meaning “having circuitry that” performs the task or tasks during operation. As such, the component can be configured to perform the task even when the component is not currently on. In general, the circuitry that forms the structure corresponding to “configured to” may include hardware circuits.
Various components may be described as performing a task or tasks, for convenience in the description. Such descriptions should be interpreted as including the phrase “configured to.” Reciting a component that is configured to perform one or more tasks is expressly intended not to invoke 35 U.S.C. § 112(f), interpretation for that component.
“Based On.” As used herein, this term is used to describe one or more factors that affect a determination. This term does not foreclose additional factors that may affect a determination. That is, a determination may be solely based on those factors or based, at least in part, on those factors. Consider the phrase “determine A based on B.” While B may be a factor that affects the determination of A, such a phrase does not foreclose the determination of A from also being based on C. In other instances, A may be determined based solely on B.
The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicitly or implicitly), or any generalization thereof, whether or not it mitigates any or all of the problems addressed herein. Accordingly, new claims may be formulated during prosecution of this application (or an application claiming priority thereto) to any such combination of features. In particular, with reference to the appended claims, features from dependent claims may be combined with those of the independent claims and features from respective independent claims may be combined in any appropriate manner and not merely in the specific combinations enumerated in the appended claims.